﻿//------------------String类扩展------------------------
//字符串格式化处理
String.prototype.format = function() {
    var args = $.makeArray(arguments);
    return this.replace(/\{(\d+)\}/g, function(m, i) {
        return args[i];
    });
}
//去左空格
String.prototype.ltrim = function() {
    return this.replace(/^\s*/, "");
}
//去右空格; 
String.prototype.rtrim = function() {
    return this.replace(/\s*$/, "");
}
//去左右空格;
String.prototype.trim = function() {
    return this.rtrim().ltrim();
}
//------------------End String类扩展---------------------

Util={};
//------------------效验类-----------------------------------
Util.ChkUtil = {};

//校验是否为空(先删除二边空格再验证)
Util.ChkUtil.isNull = function(str) {
    if (null == str || "" == str.trim()) {
        return true;
    } else {
        return false;
    }
};
//校验是否全是数字
Util.ChkUtil.isDigit = function(str) {
    var patrn = /^\d+$/;
    return patrn.test(str);
};
//校验是否是整数
Util.ChkUtil.isInteger = function(str) {
    var patrn = /^([+-]?)(\d+)$/;
    return patrn.test(str);
};
//校验是否为正整数
Util.ChkUtil.isPlusInteger = function(str) {
    var patrn = /^([+]?)(\d+)$/;
    return patrn.test(str);
};
//校验是否为负整数
Util.ChkUtil.isMinusInteger = function(str) {
    var patrn = /^-(\d+)$/;
    return patrn.test(str);
};
//校验是否为浮点数
Util.ChkUtil.isFloat = function(str) {
    var patrn = /^([+-]?)\d*\.\d+$/;
    return patrn.test(str);
};
//校验是否为正浮点数
Util.ChkUtil.isPlusFloat = function(str) {
    var patrn = /^([+]?)\d*\.\d+$/;
    return patrn.test(str);
};
//校验是否为负浮点数
Util.ChkUtil.isMinusFloat = function(str) {
    var patrn = /^-\d*\.\d+$/;
    return patrn.test(str);
};
//校验是否仅中文
Util.ChkUtil.isChinese = function(str) {
    var patrn = /[\u4E00-\u9FA5\uF900-\uFA2D]+$/;
    return patrn.test(str);
};
//校验是否仅ACSII字符
Util.ChkUtil.isAcsii = function(str) {
    var patrn = /^[\x00-\xFF]+$/;
    return patrn.test(str);
};
//校验手机号码
Util.ChkUtil.isMobile = function(str) {
    var patrn = /^0?1(3|5|8){1}[0-9]{9}$/;
    return patrn.test(str);
};
//校验电话号码
Util.ChkUtil.isPhone = function(str) {
    var patrn = /^(0[\d]{2,3}-)?\d{6,8}(-\d{3,4})?$/;
    return patrn.test(str);
};
//校验URL地址
Util.ChkUtil.isUrl = function(str) {
    var patrn = /^http[s]?:\/\/[\w-]+(\.[\w-]+)+([\w-\.\/?%&=]*)?$/;
    return patrn.test(str);
};
//校验电邮地址
Util.ChkUtil.isEmail = function(str) {
    var patrn = /^[\w-]+@[\w-]+(\.[\w-]+)+$/;
    return patrn.test(str);
};
//校验邮编
Util.ChkUtil.isZipCode = function(str) {
    var patrn = /^\d{6}$/;
    return patrn.test(str);
};
//校验合法时间
Util.ChkUtil.isDate = function(str) {
    if (!/\d{4}(\.|\/|\-)\d{1,2}(\.|\/|\-)\d{1,2}/.test(str)) {
        return false;
    }
    var r = str.match(/\d{1,4}/g);
    if (r == null) { return false; };
    var d = new Date(r[0], r[1] - 1, r[2]);
    return (d.getFullYear() == r[0] && (d.getMonth() + 1) == r[1] && d.getDate() == r[2]);
};
//校验字符串：只能输入6-20个字母、数字、下划线(常用手校验用户名和密码)
Util.ChkUtil.isString6_20 = function(str) {
    var patrn = /^(\w){6,20}$/;
    return patrn.test(str);
};
Util.ChkUtil.isLegal = function(str) {
    var patrn = /^[\w-]+$/;
    return patrn.test(str);
}
//------------------End 效验类-----------------------------------
